var mongoose=require("mongoose");
var Cates=require("../models/cates.model")
exports.create=function(req,res,next){
    var cates=new Cates(req.body);
    cates.save()
    .then(data=>{
        res.json(data)
    })   
}

//修改
exports.update = function(req,res,next){  
      var id = req.params.id; // req.param('id')
      // 现在操作的都是mongoose而不是mongodb
      Cates.findByIdAndUpdate(id,{$set: req.body}, {new:false} )
      .then(data=>{
          res.json({msg:'数据修改成功',status:200}); // 如果你要返回数据，这个data返回的是你之前修改的那个数据内容
      })
  }


  function reverseTree(data,pid){
      var result=[],
      temp;
      var data=JSON.parse(JSON.stringify(data));
      for(var i in data){
          if(data[i].parentId===pid){
              result.push(data[i]);
              temp=reverseTree(data,data[i]._id);
              if(temp.length>0){
                  data[i].children=temp;
              }
          }
      }
      return result;
  }

  
  //删除
//   exports.remove = function(req,res,next){
//       var id = req.params.id;
//       Cate.findByIdAndRemove(id,function(err,doc){
//           res.json({msg:'数据删除成功',status:200})
//       })
//   } 
  
  
  exports.list = function(req,res,next){
  		var type=req.params.type;
       	Cates.find({type:type},function(err,data){
           var rpTree=reverseTree(data,null);
           res.json(rpTree)
       })     
  }

//根据id删除
  exports.remove=function(req,res,next){
      var id=req.params.id;
      var ids=[];
      Cates.findOne({_id:id},function(err,doc){
          if(doc){
              ids=[doc._id];//因为我们用getchildren，并不包括自己，所以需要先将自己放到数组中
              doc.getChildren().then(function(docs){
                  for(var i=0;i<docs.length;i++){
                      ids.push(docs[i]._id)
                  }
                  Cates.remove({_id:{$in:ids}})
                  .then(data=>{
                      res.josn({"msg":"数据删除成功",status:200})
                  })
              })
          }
      })
  }